package com.river.boot.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.river.boot.biz.model.entity.Product;
import com.river.boot.biz.model.form.ProductForm;
import com.river.boot.biz.model.form.ProductSpecConfigForm;
import com.river.boot.biz.model.query.ProductQuery;
import com.river.boot.biz.model.vo.ProductVO;

/**
 * 菜品服务类
 *
 * @author JiangCheng Xiang
 * @since 2025-04-24 21:04
 */
public interface ProductService extends IService<Product> {

    /**
     * 菜品分页列表
     *
     * @return
     */
    IPage<ProductVO> getProductPage(ProductQuery queryParams);

    /**
     * 获取菜品表单数据
     *
     * @param id 菜品ID
     * @return
     */
    ProductForm getProductFormData(Long id);

    /**
     * 新增菜品
     *
     * @param formData 菜品表单对象
     * @return
     */
    boolean saveProduct(ProductForm formData);

    /**
     * 修改菜品
     *
     * @param id       菜品ID
     * @param formData 菜品表单对象
     * @return
     */
    boolean updateProduct(Long id, ProductForm formData);

    /**
     * 删除菜品
     *
     * @param ids 菜品ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteProducts(String ids);

    boolean saveProductSpec(ProductSpecConfigForm formData);

    /**
     * 获取菜品规格配置
     *
     * @param id 菜品ID
     * @return 菜品规格配置
     */
    ProductSpecConfigForm getProductSpec(Long id);
}
